package com.thinkgem.jeesite.modules.data.rep.entity;


import com.thinkgem.jeesite.common.persistence.BaseEntity;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 报表配置表
 * @author Havel 2018/12/17
 * @since 1.0
 */
public class TfEcReportConfig extends BaseEntity<TfEcReportConfig> {
    /**
     * 商品ID
     */
    private Long reportId;

    /**
     * 报表名称
     */
    private String reportName;

    /**
     * 归属子系统
     */
    private String subSysCode;

    /**
     * 报表类型
     */
    private String reportType;

    /**
     * 报表说明
     */
    private String reportNote;

    /**
     * 是否支持导出  0-否；1-是
     */
    private String isExport;

    /**
     * 备注
     */
    private String remark;

    /**
     * 删除标志 0 在用 1 删除
     */
    private String delFlag;

    /**
     * 录入员工
     */
    private String inStaffId;

    /**
     * 录入时间
     */
    private Date inDate;

    /**
     * 更新员工
     */
    private String updateStaffId;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 导出 同步/异步：0-同步/1-异步/2-两者都支持
     */
    private String isExportAsyn;

    /**
     * 存储过程 对应sql 块
     */
    private String proce;

    /**
     * 存储过程 执行频率
     */
    private String proceCron;

    /**
     * 存储过程参数
     */
    private Map<String,Object> proceParam;

    /**
     * 菜单Code
     */
    private String menuCode;
    /**
     * 查询sql
     */
    private String sqlRef;
    /**
     * 报表明显sql
     */
    private String queryKey;

    /**
     * 是否复杂表头
     */
    private String isComplexHead;

    /**
     * 是否显示
     */
    private String tabIsShow;

    private List<TfEcReportConfigIn> reportConfigIns;//输入参数
    private List<TfEcReportConfigOut> reportConfigOuts;//输出参数
    private List<TfEcReportImgConf> reportImgConfs;//图形界面配置
    private Map<String, String> paramMap; //结果集
    private String transSql;//转换的sql语句

    private String fv;//报表权限过滤关键字
    private String isDetail; //是否是明细报表
    private String exDetail; //是否导出明细报表

    //== DO
    //单个图形报表单独配置，所以该字段可以不用，如何和DataTable揉到一起则最好使用
    //单个图形报表单独配置，可能造成一批数据查询多次，效率有影响
    //单个图形报表单独配置，则TfEcReportImgConf中的showDef字段用不上
    //private String ReportConfCondition;

    public TfEcReportConfig(Long reportId) {
        this.reportId = reportId;
    }

    public TfEcReportConfig() {
    }

    /**
     * 插入之前执行方法，子类实现
     */
    public void preInsert() {

    }

    /**
     * 更新之前执行方法，子类实现
     */
    public void preUpdate() {

    }

    public Long getReportId() {
        return reportId;
    }

    public void setReportId(Long reportId) {
        this.reportId = reportId;
    }

    public String getReportName() {
        return reportName;
    }

    public void setReportName(String reportName) {
        this.reportName = reportName == null ? null : reportName.trim();
    }

    public String getSubSysCode() {
        return subSysCode;
    }

    public void setSubSysCode(String subSysCode) {
        this.subSysCode = subSysCode == null ? null : subSysCode.trim();
    }

    public String getReportType() {
        return reportType;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType == null ? null : reportType.trim();
    }

    public String getReportNote() {
        return reportNote;
    }

    public void setReportNote(String reportNote) {
        this.reportNote = reportNote == null ? null : reportNote.trim();
    }

    public String getIsExport() {
        return isExport;
    }

    public void setIsExport(String isExport) {
        this.isExport = isExport == null ? null : isExport.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag == null ? null : delFlag.trim();
    }

    public String getInStaffId() {
        return inStaffId;
    }

    public void setInStaffId(String inStaffId) {
        this.inStaffId = inStaffId == null ? null : inStaffId.trim();
    }

    public Date getInDate() {
        return inDate;
    }

    public void setInDate(Date inDate) {
        this.inDate = inDate;
    }

    public String getUpdateStaffId() {
        return updateStaffId;
    }

    public void setUpdateStaffId(String updateStaffId) {
        this.updateStaffId = updateStaffId == null ? null : updateStaffId.trim();
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getIsExportAsyn() {
        return isExportAsyn;
    }

    public void setIsExportAsyn(String isExportAsyn) {
        this.isExportAsyn = isExportAsyn == null ? null : isExportAsyn.trim();
    }

    public String getProce() {
        return proce;
    }

    public void setProce(String proce) {
        this.proce = proce == null ? null : proce.trim();
    }

    public String getProceCron() {
        return proceCron;
    }

    public void setProceCron(String proceCron) {
        this.proceCron = proceCron == null ? null : proceCron.trim();
    }

    public String getMenuCode() {
        return menuCode;
    }

    public void setMenuCode(String menuCode) {
        this.menuCode = menuCode == null ? null : menuCode.trim();
    }

    public String getSqlRef() {
        return sqlRef;
    }

    public void setSqlRef(String sqlRef) {
        this.sqlRef = sqlRef;
    }

    public List<TfEcReportConfigIn> getReportConfigIns() {
        return reportConfigIns;
    }

    public void setReportConfigIns(List<TfEcReportConfigIn> reportConfigIns) {
        this.reportConfigIns = reportConfigIns;
    }

    public List<TfEcReportConfigOut> getReportConfigOuts() {
        return reportConfigOuts;
    }

    public void setReportConfigOuts(List<TfEcReportConfigOut> reportConfigOuts) {
        this.reportConfigOuts = reportConfigOuts;
    }

    public Map<String, String> getParamMap() {
        return paramMap;
    }

    public void setParamMap(Map<String, String> paramMap) {
        this.paramMap = paramMap;
    }

    public String getTransSql() {
        return transSql;
    }

    public void setTransSql(String transSql) {
        this.transSql = transSql;
    }

    public String getQueryKey() {
        return queryKey;
    }

    public void setQueryKey(String queryKey) {
        this.queryKey = queryKey;
    }

    public String getFv() {
        return fv;
    }

    public void setFv(String fv) {
        this.fv = fv;
    }

    public String getIsDetail() {
        return isDetail;
    }

    public void setIsDetail(String isDetail) {
        this.isDetail = isDetail;
    }

    public String getExDetail() {
        return exDetail;
    }

    public void setExDetail(String exDetail) {
        this.exDetail = exDetail;
    }

    public String getIsComplexHead() {
        return isComplexHead;
    }

    public void setIsComplexHead(String isComplexHead) {
        this.isComplexHead = isComplexHead;
    }

    public List<TfEcReportImgConf> getReportImgConfs() {
        return reportImgConfs;
    }

    public void setReportImgConfs(List<TfEcReportImgConf> reportImgConfs) {
        this.reportImgConfs = reportImgConfs;
    }

    public Map<String, Object> getProceParam() {
        return proceParam;
    }

    public void setProceParam(Map<String, Object> proceParam) {
        this.proceParam = proceParam;
    }

    public String getTabIsShow() {
        return tabIsShow;
    }

    public void setTabIsShow(String tabIsShow) {
        this.tabIsShow = tabIsShow;
    }
}